# -*- coding:UTF-8 -*-
'''
开发环境：PyCharm
创建日期：2025/8/5 16:29
作   者：新启典学苑-樱桃
描   述：selenium 8种定位元素的方式
         xpath：元素在html中的路径
            绝对路径，从根节点开始写的路径，/html/body/div/h1
            相对路径，相对任意节点的路径，// 开始写
                  //标签名     //a   //input
                  //*[@属性=值]   //*[@id='su']   //input[@id='su'] 任意元素下，有一个id为su的属性。
                  //*[@属性1=值1 and @属性2=值2] 可以多个属性同时定位

            元素的属性是动态变化的，id 值为：id123456、id123478、id8980
                 //*[contains(@属性, 属性值)]

'''
from time import sleep

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Edge()  # 创建edge浏览器对象
driver.get("http://www.baidu.com")  # 访问百度
# 绝对路径，从根节点开始写的路径  F12复制 full xpath
# 页面上操作一段时间后，xpath可能会变化。首次打开浏览器，打开页面时，再复制这个xpath
a = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[6]/div/div/form/span[1]/input')
a.send_keys("xpath是什么")
sleep(2)

# 百度输入框
a = driver.find_element(By.XPATH, "//*[@maxlength='255']")
print(a.get_dom_attribute("id"))
print(a.get_dom_attribute("name"))
# //*[@属性1=值1]
a = driver.find_element(By.XPATH, "//*[@autocomplete='off']")
print(a.get_dom_attribute("id"))
print(a.get_dom_attribute("name"))
# //*[@属性1=值1 and @属性2=值2]
a = driver.find_element(By.XPATH, "//*[@autocomplete='off' and @maxlength='255']")
print(a.get_dom_attribute("id"))
print(a.get_dom_attribute("name"))
# //input[@属性1=值1 and @属性2=值2]
a = driver.find_element(By.XPATH, "//input[@autocomplete='off' and @maxlength='255']")
print(a.get_dom_attribute("id"))
print(a.get_dom_attribute("name"))

print("*" * 100)
# //*[contains(@属性, 属性值)]
a = driver.find_element(By.XPATH, "//*[contains(@autocomplete, 'ff')]")
print(a.get_dom_attribute("id"))
print(a.get_dom_attribute("name"))

a = driver.find_element(By.XPATH, "//*[contains(@autocomplete, 'of')]")
print(a.get_dom_attribute("id"))
print(a.get_dom_attribute("name"))
